home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Zoomed Video Driver v1.0 SDK / Tools / PC Card DispNameReg / Src / DisplayNameRegistry.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-06-02  |  8.2 KB  |  353 lines  |  [TEXT/CWIE]

  1. #include "SystemSoft.h"
  2. /*                                    DisplayNameRegistry.h                            */
  3. /*
  4.  * DisplayNameRegistry.h
  5.  * Copyright © 1993-94 Apple Computer Inc. All rights reserved.
  6.  */
  7. #ifndef __NameRegistryDisplay__
  8. #define __NameRegistryDisplay__
  9.  
  10. #define kVersionMajor        1
  11. #define kVersionMinor        0
  12. #define kVersionStage        beta    /* Res only */
  13. #define kVersionStageLetter    'b'
  14. #define kVersionRelease        1
  15. #define kApplicationCreator    'DNPR'
  16. #define MBAR_MenuBar        1
  17. #define MENU_Apple            1
  18. #define MENU_File            256
  19. #define MENU_Edit            257
  20. #define MENU_Options        258
  21. #define MENU_FontName        259
  22. #define MENU_FontSize        260
  23. #define CNTL_FontNamePopup    256
  24. #define CNTL_FontSizePopup    257
  25. #define PICT_OnDisk            128
  26. #define PICT_InNVRAM        129
  27. #define ACUR_Animator        256
  28. #define LDEF_Stub            1024
  29. #define STRN_Options        128
  30. #define DLOG_About            128
  31. #define ALRT_NonFatalError    129
  32. #define ALRT_FatalError        130
  33. #define DLOG_SetFontInfo    256
  34. #define DLOG_SFPutFile        4000
  35. #define STR_FinderIDString    (-16397)            /* Resource id of help message        */
  36.  
  37. #ifndef REZ
  38. #include <ConditionalMacros.h>
  39. #if GENERATINGPOWERPC == 0
  40.     << error: the following will not work >>
  41. #endif
  42.  
  43. #include <Types.h>
  44. //#include <MixedMode.h>
  45. #include <OSUtils.h>
  46. #include <Files.h>
  47. //#include <QuickdrawText.h>
  48. #include <QuickDraw.h>
  49. #include <Events.h>
  50. #include <Errors.h>
  51. #include <Memory.h>
  52. #include <Menus.h>
  53. #include <Controls.h>
  54. #include <Windows.h>
  55. #include <TextEdit.h>
  56. #include <Dialogs.h>
  57. //#include <MachineExceptions.h>
  58. //#include <PCI.h>
  59. //#include <Kernel.h>
  60. #include <NameRegistry.h>
  61. //#include <CodeFragments.h>
  62. #include <Devices.h>
  63. #include <Fonts.h>
  64. #include <Resources.h>
  65. //#include <LowMem.h>
  66. #include <StandardFile.h>
  67. //#include <IntlResources.h>
  68. //#include <Script.h>
  69. //#include <TextUtils.h>
  70. #include <SegLoad.h>
  71. //#include <FixMath.h>
  72. #include <ToolUtils.h>
  73. //#include <Gestalt.h>
  74. #include <Printing.h>
  75. //#include <AppleTalk.h>
  76.  
  77. #include <stdio.h>
  78. #include <stdlib.h>
  79. #include <string.h>
  80.  
  81. #include "AppleEventCore.h"
  82. #include "TwistDownList.h"
  83.  
  84. /*
  85.  *** Common definitions
  86.  */
  87. #ifndef EXTERN
  88. #define EXTERN                extern
  89. #endif
  90. #ifndef TRUE
  91. #define TRUE                1
  92. #define FALSE                0
  93. #endif
  94. #ifndef NULL
  95. #define NULL                0
  96. #endif
  97. #define    kScrollBarWidth         (16)
  98. #define kAnimationInterval        (6)            /* Ticks                        */
  99. #define kOKButton                (1)
  100. #define kCancelButton            (2)
  101. enum {
  102.     kMinWindowWidth                = 64,
  103.     kMinWindowHeight            = 64
  104. };
  105. #define width(rect)        ((rect).right - (rect).left)
  106. #define height(rect)    ((rect).bottom - (rect).top)
  107. /*
  108.  * Parts of a rectangle
  109.  */
  110. #define topLeft(rect)    (((Point *) &rect)[0])
  111. #define botRight(rect)    (((Point *) &rect)[1])
  112.  
  113. /*
  114.  * Printable characters from the ISO-Invariant character set.
  115.  */
  116. #define IS_ASCII_PRINT(c)    ((c) >= ' ' && (c) <= '~')
  117.  
  118. enum {
  119.     kPrimaryIndentLevel        = 0,
  120.     kSecondaryIndentLevel,
  121.     kValueIndentLevel
  122. };
  123. #define kOneLineFormatLength    (80)
  124. #define kSavedInNVRAM            (kFirstUserFlag)
  125. #define kSavedOnDisk            (kFirstUserFlag << 1)
  126.  
  127. enum {
  128.     kOptionFontName    = 1,
  129.     kOptionFontSize
  130. };
  131.  
  132. #define UNUSED(what) do {    \
  133.             what;            \
  134.         } while (0)
  135.  
  136. /*
  137.  * This is used by the animated cursor subroutine.
  138.  */
  139. typedef struct {
  140.     unsigned short        nFrames;
  141.     unsigned short        nextFrame;
  142.     CursHandle            frame[1];
  143. } ACUR_Record, *ACUR_Ptr, **ACUR_Handle;
  144.  
  145. /*
  146.  * All of the information we need for browsing is stored in an extended
  147.  * window record.
  148.  *
  149.  * Each value (path : property : value) is stored in a TwistDown list element. Each
  150.  * element contains both the property (PString) and path (C string). If there is
  151.  * a property value, it will be stored in a sub-list. This is stored in the
  152.  * registrySiblingSet (REG). After this set has been constructed, the list is
  153.  * sorted and a display SiblingSet is constructed. The elements of this set contain
  154.  * readable text.
  155.  */
  156. typedef struct BrowserRecord {
  157.     WindowRecord        theWindow;
  158.     ListHandle            theList;
  159.     unsigned long        dataIndex;
  160.     unsigned long        dataSize;
  161.     TwistDownSiblingSet    registrySiblingSet;
  162.     TwistDownSiblingSet    displaySiblingSet;
  163.     Boolean                sortByName;
  164.     short                fontNumber;
  165.     short                fontSize;
  166.     Str255                fontNameText;
  167. } BrowserRecord, *BrowserPtr;
  168. #define BROWSER        (*browserPtr)
  169. #define REG            (BROWSER.registrySiblingSet)
  170. #define DIS            (BROWSER.displaySiblingSet)
  171.  
  172. /*
  173.  * Window management functions
  174.  */
  175. OSErr                        MakeNameRegistryBrowserWindow(void);
  176. void                        DoRefreshDisplay(
  177.         BrowserPtr                browserPtr
  178.     );
  179. void                        DoEnumerateNameRegistry(
  180.         BrowserPtr                browserPtr
  181.     );
  182. void                        DisposeBrowser(
  183.         register BrowserPtr        browserPtr
  184.     );
  185. void                        DoContentClick(
  186.         register BrowserPtr        browserPtr,
  187.         const EventRecord        *eventRecordPtr
  188.     );
  189. void                        DoWindowKeyDown(
  190.         register BrowserPtr        browserPtr
  191.     );
  192. void                        UpdateBrowserWindow(
  193.         register BrowserPtr        browserPtr,
  194.         RgnHandle                updateRgn
  195.     );
  196. void                        ActivateBrowser(
  197.         register BrowserPtr        browserPtr,
  198.         Boolean                    isActivating
  199.     );
  200. void                        EnumerateNameRegistry(
  201.         BrowserPtr                browserPtr
  202.     );
  203. TwistDownHdl                FormatThisProperty(
  204.         const RegPropertyNameBuf foundProperty,
  205.         RegPropertyValueSize    propertySize,
  206.         const void                *propertyValue
  207.     );
  208. Boolean                        OneLineProperty(
  209.         const char                *labelText,
  210.         const TwistDownHdl        valueElement,
  211.         char                    *oneLineWork
  212.     );
  213. UInt32                        UnpackDataRecord(
  214.         const TwistDownPtr        thisElement,        /* Locked TwistDownHdl            */
  215.         char                    **pathNameCString,
  216.         char                    **foundPropertyCString
  217.     );
  218.  
  219. /*
  220.  * Rebuild/sort the list and display it.
  221.  */
  222. void                        InitializeDisplayList(
  223.         register BrowserPtr        browserPtr
  224.     );
  225. void                        RebuildDisplayList(
  226.         register BrowserPtr        browserPtr
  227.     );
  228. void                        SortAndDisplayBrowserWindow(
  229.         register BrowserPtr        browserPtr
  230.     );
  231. void                        DecorateBrowserWindow(
  232.         register BrowserPtr        browserPtr
  233.     );
  234. void                        PrintBrowserWindow(
  235.         register BrowserPtr        browserPtr
  236.     );
  237. Boolean                        SetFontInfoDialog(
  238.         register BrowserPtr        browserPtr
  239.     );
  240. void                        DoSetFontInfo(
  241.         register BrowserPtr        browserPtr
  242.     );
  243. pascal void                    DisplayListDrawProc(
  244.         ListHandle                twistDownListHdl,    /* The list itself            */
  245.         TwistDownPtr            twistDownPtr,        /* Locked data handle        */
  246.         const Rect                *viewRect            /* Draw in this area        */
  247.     );
  248. #if 0
  249. pascal OSErr                DisplayListPrintImageProc(
  250.         ListHandle                theList,
  251.         THPrint                    hPrint,
  252.         void                    *clientData,
  253.         StringPtr                dateString,
  254.         const Rect                *pageRect,
  255.         short                    pageNumber
  256.     );
  257. #endif
  258. /*
  259.  * The TwistDownList manager calls this to draw a list element.
  260.  */
  261. pascal void                    DrawThisElement(
  262.         ListHandle                twistDownListHdl,    /* The list itself            */
  263.         TwistDownPtr            twistDownPtr,        /* Locked data handle        */
  264.         const Rect                *viewRect            /* Draw in this area        */
  265.     );
  266.  
  267. /*
  268.  * Output functions.
  269.  */
  270. void                        CreateOutputFile(void);
  271. #ifdef SYSF
  272. void                         SnapshotToDisk(Boolean isExpanded, Boolean noSockets, char *fileName);
  273. #endif
  274. /*
  275.  * Animated Cursor Utilities
  276.  */
  277. void                        SetupAnimatedCursor(
  278.         short                    ACUR_ResID
  279.     );
  280. void                        SpinCursor(void);
  281. extern void                    pstrcpy(
  282.         StringPtr                dst,
  283.         ConstStr255Param        src
  284.     );
  285. extern void                    pstrcat(
  286.         StringPtr                dst,
  287.         ConstStr255Param        src
  288.     );
  289. /*
  290.  * Window utilities.
  291.  */
  292. void                        DoZoomWindow(
  293.         WindowPtr                theWindow,
  294.         short                    whichPart
  295.     );
  296. Boolean                        DoGrowWindow(
  297.         WindowPtr                theWindow,
  298.         Point                    startingPoint,
  299.         short                    minimumWidth,
  300.         short                    minimumHeight
  301.     );
  302. /*
  303.  * Cheap 'n dirty memory clear routine.
  304.  */
  305. #define Clear(dst) do {                                    \
  306.         Ptr                _ptr = (Ptr) &dst;                \
  307.         Size            _size = sizeof dst;                \
  308.         while (_size > 0) {                                \
  309.             *_ptr++ = 0;                                \
  310.             --_size;                                    \
  311.         }                                                \
  312.     } while (0)
  313.  
  314. void                        CheckError(
  315.         OSErr                    errorStatus,
  316.         ConstStr255Param        errorMsg
  317.     );
  318. void                        NonFatalError(
  319.         OSErr                    errorStatus,
  320.         ConstStr255Param        errorMsg
  321.     );
  322. void                        FatalError(
  323.         OSErr                    errorStatus,
  324.         ConstStr255Param        errorMsg
  325.     );
  326. short                        ErrorMessage(
  327.         short                    alertID,
  328.         OSErr                    errorStatus,
  329.         ConstStr255Param        errorMsg
  330.     );
  331.  
  332. /*
  333.  * Global values
  334.  */
  335. EXTERN EventRecord        gEventRecord;
  336. EXTERN Boolean            gQuitNow;
  337. EXTERN Boolean            gUpdateMenusNeeded;
  338. EXTERN BrowserPtr        gCurrentBrowserPtr;
  339. EXTERN short            gOpenWindowCount;
  340. EXTERN MenuHandle        gAppleMenu;
  341. EXTERN MenuHandle        gFileMenu;
  342. EXTERN MenuHandle        gEditMenu;
  343. EXTERN MenuHandle        gOptionMenu;
  344. EXTERN THPrint            gPrintHandle;
  345. EXTERN ACUR_Handle        gACUR_Handle;
  346. EXTERN unsigned long    gACUR_NextAnimation;
  347. EXTERN SFReply            gSFReply;
  348. EXTERN short            gSaveFileRefNum;
  349. extern Boolean            gSaveAllElements;
  350.  
  351. #endif    /* Not REZ */
  352. #endif    /* __NameRegistryDisplay__    */
  353.